home *** CD-ROM | disk | FTP | other *** search
/ CD-ROM Magazine 28 Bonus / CDRomMagazine-SoftKey-ArtPassion-FrenchVersion-Win31Mac.bin / data / arttiml.dir / 00017_Script_SCROLLBAR SCRIPTS < prev    next >
Text File  |  1996-06-16  |  3KB  |  105 lines

  1.  
  2. on initScrollBar
  3.   global scrollBar,numOfPixelsPerScreen, halfNumPixelsPerScreen,thumb,timeLine,screenWidth
  4.   global numberOfScreens,firstTimeScreenframe, framesBetweenScreens
  5.   
  6.   set scrollBar       = 36 -- TimeBar
  7.   set thumb           = 37
  8.   
  9.   set firstTimeScreenframe = 4
  10.   set framesBetweenScreens = 2
  11.   
  12.   set numberOfScreens = 40
  13.   
  14.   puppetSprite thumb,1
  15.   
  16.   -- the thumb has to be moved numOfPixelsPerScreen pixels to move the timeLine 1 screen
  17.   set scrollBarWidth = the width of sprite scrollBar
  18.   set numOfPixelsPerScreen = (scrollBarWidth * 1.0) / (numberOfScreens - 1)
  19.   set halfNumPixelsPerScreen = numOfPixelsPerScreen/2
  20.   
  21.   -- restrict movement of thumb to the scrollbar
  22.   set the constraint of sprite thumb to scrollBar
  23.   
  24. end
  25.  
  26. -------------------------------------------------------------------------------------
  27. -- handler newScreen gets called when clicking on the scrollbar.
  28. --
  29. on newScreen
  30.   global thumb,screenWidth
  31.   --trace on
  32.   repeat while the mouseDown
  33.     scroll
  34.   end repeat
  35.   --trace off
  36. end
  37.  
  38. -------------------------------------------------------------------------------------
  39. -- handler scroll gets called when dragging the thumb
  40. --
  41. on scroll
  42.   global thumb,scrollBar
  43.   
  44.   repeat while the mouseDown
  45.     set newLocH = the mouseH
  46.     updateLocHOfItem thumb, newLocH
  47.   end repeat  
  48.   
  49.   updateTimeLine
  50.   
  51. end
  52.  
  53. -------------------------------------------------------------------------------------
  54. -- handler updateTimeLine
  55. --   calculates the new timeline screen from the position of the tumb.
  56. --    shows the new timeline screen
  57. --    calculates the thumbposition that corresponds with the new timeline screen
  58. --    snaps the tumb into this new position
  59.  
  60. on updateTimeLine
  61.   global thumb, framesBetweenScreens, firstTimeScreenframe
  62.   
  63.   set newScreen = getScreenNumFromThumbPos()
  64.   set newFrame = firstTimeScreenframe + (newScreen - 1) * framesBetweenScreens
  65.   
  66.   put "newScreen = "&newScreen
  67.   put "newFrame = "&newFrame
  68.   
  69.   if newFrame > the frame then 
  70.     goForwardIntime newFrame
  71.   else if newFrame < the frame then 
  72.     goBackIntime newFrame
  73.   end if
  74.   
  75.   -- snap thumb to position
  76.   set newThumbPos = getThumbPosFromScreenNum(newScreen)
  77.   updateLocHOfItem thumb,newThumbPos
  78.   
  79. end
  80.  
  81.  
  82. on getScreenNumFromThumbPos
  83.   global thumb,numOfPixelsPerScreen,halfNumPixelsPerScreen, scrollBar, numberOfScreens
  84.   
  85.   set thumbPos = the locH of sprite thumb - the left of sprite scrollBar
  86.   --  set screenNum = integer((thumbPos+halfNumPixelsPerScreen)  / numOfPixelsPerScreen)
  87.   set screenNum = integer(thumbPos / numOfPixelsPerScreen) + 1
  88.   if screenNum < 1 then set screenNum = 1
  89.   if screenNum > numberOfScreens then set screenNum = numberOfScreens
  90.   return screenNum
  91. end
  92.  
  93.  
  94. on getThumbPosFromScreenNum aScreen
  95.   global numOfPixelsPerScreen,scrollBar
  96.   set newLocH = the left of sprite scrollBar + integer((aScreen-1) * numOfPixelsPerScreen)
  97.   return newLocH
  98. end
  99.  
  100.  
  101. on updateLocHOfItem aSprite, aLocH
  102.   set the locH of sprite aSprite to aLocH
  103.   updateStage
  104. end
  105.